# -*- coding: utf-8 -*-

"""
@author: kai
@software: PyCharm
@file: part1.py
@time: 2021/5/5:11:09 上午
"""

import matplotlib.pylab as plt
import numpy as np

def zhexiantu():
    # 折线图
    plt.rcParams["font.sans-serif"] = 'SimHei'  # 解决中文显式问题-设置字体为黑体 用来正常显示中文标签
    a = ['1.27', '1.30', '2.2', '2.5', '2.8', '2.10', '2.15', '2.20', '2.23', '2.29', '3.3']
    b = [1771, 1982, 2829, 3694, 2653, 2484, 2009, 892, 416, 579, 120]
    c = [2077, 4812, 5173, 5328, 3916, 3516, 1918, 1614, 620, 132, 143]
    # 画折线图 ro- r表示颜色 o表示点 -表示线
    plt.plot(a, b, "bo-", label='打卡人数')
    plt.plot(a, c, "yo-", label='未打开人数')
    plt.xlabel('日期')
    plt.ylabel('人数')
    # 显式 label='打卡' 实例
    plt.legend()
    plt.show()

# 饼图 pie
# explode：一个列表，用于指定每块饼片边缘偏离半径的百分比
# labels：每份饼片的标签
# autopct：数值百分比的样式
# startangle：起始角度，跟四象限的角度一致
# shadow：是否绘制阴影
# colors：饼片的颜色

def bingtu():
    plt.rcParams["font.sans-serif"] = 'SimHei'
    city = ['部门1', '部门2', '部门3', '部门4', '部门5']
    data = [100, 200, 400, 200, 50]
    el = [0, 0, 0.05, 0, 0]
    plt.pie(data, labels=city, autopct='%.2f%%', explode=el, shadow=True)
    plt.show()


# 柱状图
def zhuzhuangtu():
    plt.rcParams["font.sans-serif"] = 'SimHei'
    city = ['部门1', '部门2', '部门3', '部门4', '部门5', '部门6', '部门7', '部门8', '部门9']
    # 图标的标题
    plt.title('集团缺勤人数和全勤人数对比')
    p1 = [37, 11, 6, 26, 1, 4, 4, 8, 0]
    p2 = [46, 158, 151, 120, 54, 41, 38, 17, 10]
    bar_width = 0.4
    # 【0，1，2，3，4，5，6，7，8】
    # 【0.405，1.405，2.405，3.405，4.405，5.405，6.405，7.405，8.405】
    plt.bar(range(len(city)), p1, color='steelblue', width=bar_width, label='缺勤人数')
    plt.bar(np.arange(len(city))+bar_width+0.005, p2, color='indianred', width=bar_width, label='全勤人数')
    for x, y in enumerate(p1):
        plt.text(x, y+5, str(y), ha='center', va='bottom')
    for x, y in enumerate(p2):
        plt.text(x+bar_width+0.005, y+5, str(y), ha='center', va='bottom')
    plt.xticks(np.arange(len(city))+(bar_width+0.005)/2, city)

    plt.legend()
    plt.show()

zhuzhuangtu()